﻿<%@ Application Language="C#" %>

<script runat="server">

    void Application_Start(object sender, EventArgs e) 
    {
        // 在应用程序启动时运行的代码

    }
    
    void Application_End(object sender, EventArgs e) 
    {
        //  在应用程序关闭时运行的代码

    }
        
    void Application_Error(object sender, EventArgs e) 
    {
        // 在出现未处理的错误时运行的代码
        Application.Lock();
        try
        {

            Logs.WebLogs Logs = new Logs.WebLogs();
            string referrerUri = (Request.UrlReferrer != null) ? Request.UrlReferrer.AbsoluteUri : string.Empty;
            string UserName = "";
            try
            {
                UserName=System.Web.HttpContext.Current.Session["loginID"] + "";
            }
            catch
            { }
            string message = "";
            string targetsit = "";
            if (Server.GetLastError().InnerException == null)
            {
                message = Server.GetLastError().Message;
                targetsit = Server.GetLastError().TargetSite.ToString();
            }
            else
            {
                message = Server.GetLastError().InnerException.Message;
                targetsit = Server.GetLastError().InnerException.TargetSite.ToString();
            }

            Logs.Add("FansError", UserName, message, targetsit, Request.UserHostAddress, Request.UserAgent, Request.Url.AbsoluteUri, referrerUri);
            Server.ClearError();

            Response.Redirect("../Index/Error.aspx");

        }
        catch
        { }
        finally
        {
            Application.UnLock();
        }

    }

    void Session_Start(object sender, EventArgs e) 
    {
        // 在新会话启动时运行的代码

    }

    void Session_End(object sender, EventArgs e) 
    {
        // 在会话结束时运行的代码。 
        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
        // InProc 时，才会引发 Session_End 事件。如果会话模式设置为 StateServer 
        // 或 SQLServer，则不会引发该事件。

    }
       
</script>
